home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / sound / sb16_csp.h < prev    next >
Text File  |  2009-10-16  |  4KB  |  116 lines

  1. #ifndef __SOUND_SB16_CSP_H
  2. #define __SOUND_SB16_CSP_H
  3.  
  4. /*
  5.  *  Copyright (c) 1999 by Uros Bizjak <uros@kss-loka.si>
  6.  *                        Takashi Iwai <tiwai@suse.de>
  7.  *
  8.  *  SB16ASP/AWE32 CSP control
  9.  *
  10.  *   This program is free software; you can redistribute it and/or modify 
  11.  *   it under the terms of the GNU General Public License as published by
  12.  *   the Free Software Foundation; either version 2 of the License, or
  13.  *   (at your option) any later version.
  14.  *
  15.  *   This program is distributed in the hope that it will be useful,
  16.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  *   GNU General Public License for more details.
  19.  *
  20.  *   You should have received a copy of the GNU General Public License
  21.  *   along with this program; if not, write to the Free Software
  22.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  23.  *
  24.  */
  25.  
  26. /* CSP modes */
  27. #define SNDRV_SB_CSP_MODE_NONE        0x00
  28. #define SNDRV_SB_CSP_MODE_DSP_READ    0x01    /* Record from DSP */
  29. #define SNDRV_SB_CSP_MODE_DSP_WRITE    0x02    /* Play to DSP */
  30. #define SNDRV_SB_CSP_MODE_QSOUND        0x04    /* QSound */
  31.  
  32. /* CSP load flags */
  33. #define SNDRV_SB_CSP_LOAD_FROMUSER    0x01
  34. #define SNDRV_SB_CSP_LOAD_INITBLOCK    0x02
  35.  
  36. /* CSP sample width */
  37. #define SNDRV_SB_CSP_SAMPLE_8BIT        0x01
  38. #define SNDRV_SB_CSP_SAMPLE_16BIT        0x02
  39.  
  40. /* CSP channels */
  41. #define SNDRV_SB_CSP_MONO            0x01
  42. #define SNDRV_SB_CSP_STEREO        0x02
  43.  
  44. /* CSP rates */
  45. #define SNDRV_SB_CSP_RATE_8000        0x01
  46. #define SNDRV_SB_CSP_RATE_11025        0x02
  47. #define SNDRV_SB_CSP_RATE_22050        0x04
  48. #define SNDRV_SB_CSP_RATE_44100        0x08
  49. #define SNDRV_SB_CSP_RATE_ALL        0x0f
  50.  
  51. /* CSP running state */
  52. #define SNDRV_SB_CSP_ST_IDLE        0x00
  53. #define SNDRV_SB_CSP_ST_LOADED        0x01
  54. #define SNDRV_SB_CSP_ST_RUNNING        0x02
  55. #define SNDRV_SB_CSP_ST_PAUSED        0x04
  56. #define SNDRV_SB_CSP_ST_AUTO        0x08
  57. #define SNDRV_SB_CSP_ST_QSOUND        0x10
  58.  
  59. /* maximum QSound value (180 degrees right) */
  60. #define SNDRV_SB_CSP_QSOUND_MAX_RIGHT    0x20
  61.  
  62. /* maximum microcode RIFF file size */
  63. #define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE    0x3000
  64.  
  65. /* microcode header */
  66. struct snd_sb_csp_mc_header {
  67.     char codec_name[16];        /* id name of codec */
  68.     unsigned short func_req;    /* requested function */
  69. };
  70.  
  71. /* microcode to be loaded */
  72. struct snd_sb_csp_microcode {
  73.     struct snd_sb_csp_mc_header info;
  74.     unsigned char data[SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE];
  75. };
  76.  
  77. /* start CSP with sample_width in mono/stereo */
  78. struct snd_sb_csp_start {
  79.     int sample_width;    /* sample width, look above */
  80.     int channels;        /* channels, look above */
  81. };
  82.  
  83. /* CSP information */
  84. struct snd_sb_csp_info {
  85.     char codec_name[16];        /* id name of codec */
  86.     unsigned short func_nr;        /* function number */
  87.     unsigned int acc_format;    /* accepted PCM formats */
  88.     unsigned short acc_channels;    /* accepted channels */
  89.     unsigned short acc_width;    /* accepted sample width */
  90.     unsigned short acc_rates;    /* accepted sample rates */
  91.     unsigned short csp_mode;    /* CSP mode, see above */
  92.     unsigned short run_channels;    /* current channels  */
  93.     unsigned short run_width;    /* current sample width */
  94.     unsigned short version;        /* version id: 0x10 - 0x1f */
  95.     unsigned short state;        /* state bits */
  96. };
  97.  
  98. /* HWDEP controls */
  99. /* get CSP information */
  100. #define SNDRV_SB_CSP_IOCTL_INFO        _IOR('H', 0x10, struct snd_sb_csp_info)
  101. /* load microcode to CSP */
  102. #define SNDRV_SB_CSP_IOCTL_LOAD_CODE    _IOW('H', 0x11, struct snd_sb_csp_microcode)
  103. /* unload microcode from CSP */
  104. #define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE    _IO('H', 0x12)
  105. /* start CSP */
  106. #define SNDRV_SB_CSP_IOCTL_START        _IOW('H', 0x13, struct snd_sb_csp_start)
  107. /* stop CSP */
  108. #define SNDRV_SB_CSP_IOCTL_STOP        _IO('H', 0x14)
  109. /* pause CSP and DMA transfer */
  110. #define SNDRV_SB_CSP_IOCTL_PAUSE        _IO('H', 0x15)
  111. /* restart CSP and DMA transfer */
  112. #define SNDRV_SB_CSP_IOCTL_RESTART    _IO('H', 0x16)
  113.  
  114.  
  115. #endif /* __SOUND_SB16_CSP */
  116.